#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;



//void Swap(T& a, T& b) {
//	T tmp = a;
//	a = b;
//	b = tmp;
//}

//int main() {
//	int a = 0, b = 1;
//	Swap(a, b);
//	double x = 1.1, y = 2.2;
//	Swap(x, y); 
//	char c = 'A';
//	char* p = &c;
//	string s = c;
//
//}

//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	string s1 = "abcdef";
//	string::reverse_iterator rit = s1.rbegin();
//	while (rit != s1.rend()) {
//		cout << *rit << ' ';
//		++rit;
//	}
//
//	return 0;
//}


//class Solution {
//public:
//    string addStrings(string num1, string num2) {
//        string _long = num1, _short = num2;
//        if (num1.size() < num2.size()) {
//            _long = num2;
//            _short = num1;
//        }
//        string s;
//        int i = _short.size() - 1;
//        int j = _long.size() - 1;
//        while (i != -1) {
//            s += (_long[j] + (_short[i] - '0'));
//            i--;
//            j--;
//        }
//        while (j != -1) {
//            s += _long[j--];
//        }
//        int n = s.size();
//        for (int i = 0; i < n; i++) {
//            s[i] = ((s[i] - '0') % 10) + '0';
//            if (i == n - 1 && s[i] - '0' > 0)
//                s += '1';
//            else if (i < n - 1 && s[i] - '0'>0)
//                s[i + 1] += 1;
//        }
//     
//        return s;
//    }
//};

//class Solution {
//public:
//    string addStrings(string num1, string num2) {
//        string _long = num1, _short = num2;
//        if (num1.size() < num2.size()) {
//            _long = num2;
//            _short = num1;
//        }
//        string s;
//        int i = _short.size() - 1;
//        int j = _long.size() - 1;
//        while (i != -1) {
//            s += (_long[j] + (_short[i] - '0'));
//            i--;
//            j--;
//        }
//        while (j != -1) {
//            s += _long[j--];
//        }
//        int n = s.size();
//        for (int i = 0; i < n; i++) {
//            if (i == n - 1 && s[i] - '0' > 9)
//                s += '1';
//            else if (i < n - 1 && s[i] - '0'>9)
//                s[i + 1] += 1;
//            s[i] = ((s[i] - '0') % 10) + '0';
//        }
//        int l = 0, r = s.size() - 1;
//        while (l < r) {
//            swap(s[l], s[r]);
//            l++;
//            r--;
//        }
//        return s;
//    }
//};

//class Solution {
//public:
//    string addStrings(string num1, string num2) {
//        int i = num1.size() - 1;
//        int j = num2.size() - 1;
//        string s;
//        int caryy = 0;
//        while (i >= 0 || j >= 0) {
//            int tmp1 = i >= 0 ? (num1[i] - '0') : 0;
//            int tmp2 = j >= 0 ? (num2[j] - '0') : 0;
//            int val = tmp1 + tmp2 + caryy;
//            caryy = val / 10;
//            s += val % 10+'0';
//            i--;
//            j--;
//        }
//        if (caryy == 1)
//            s += '1';
//        reverse(s.begin(), s.end());
//        return s;
//    }
//};
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	string a = "456";
//    string b = "77";
//    string s= Solution().addStrings(a, b);
//
//	return 


//int t, n, x;
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		int tmp = 0;
//		for (int i = 0; i < n; i++) {
//			cin >> x;
//			tmp ^= x;
//		}
//		if (tmp)
//			cout << "Yes\n";
//		else
//			cout << "No\n";
//	}
//	return 0;
//}


//int t;
//int n, a[55];
//
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		bool flag = true;
//		int tmp = 0;
//		for (int i = 1; i <= n; i++) {
//			cin >> a[i];
//			if (a[i] != 1)
//				flag = false;
//			tmp ^= a[i];
//		}
//		if (flag) {
//			if (n % 2 == 0) 
//				cout << "John\n";
//			else
//				cout << "Brother\n";
//		}
//		else {
//			if(tmp)
//				cout << "John\n";
//			else
//				cout << "Brother\n";
//		}
//	}
//
//	return 0;
//}
//
//ll f[1005];
//ll n;
//ll sz;
//
//
//void build() {
//	f[0] = f[1] = 1;
//	sz = 2;
//	while (f[sz - 1] < n) {
//		f[sz] = f[sz - 1] + f[sz - 2];
//		sz++;
//	}
//}
//
//ll find(ll x) {
//	int l = 0, r = sz-1,m;
//	while (l < r) {
//		m = (l + r+1) >> 1;
//		if (f[m] <= x)
//			l = m;
//		else
//			r = m - 1;
//	}
//	return f[l];
//}
//
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> n;
//	build();
//	
//	ll ans = -1, fn;
//	while (n != 1 && n != 2) {
//		fn = find(n);
//		if (fn == n) {
//			ans = n;
//			break;
//		}
//		else {
//			n -= fn;
//		}
//	}
//	if (ans != -1) {
//		cout<< ans;
//	}
//	else {
//		cout << n;
//	}
//	return 0;
//}

int n, m;
const double lorry = (sqrt(5.0) + 1.0) / 2.0;

int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n >> m;
	int a = max(n, m);
	int b = min(n, m);
	if (b != (int)(a - b) * lorry)
		cout << 1;
	else
		cout << 0;

	return 0;
}